<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
    首先检测数组是否非递减排序，如果满足非递减排序则直接返回true;
如果数组不满足非递减排序，则找到第一个à满足nums[i]<nums[i- 1]，
然后分别检测子数组nums[0,.… ,i- 1], nums[i,·… . ,n 一1]是否都满足非递减排序;
如果两个子数组都满足非递减排序，还需检测nums[i,… ,n ―1]中的元素是否都满足小于等于nums[0]，
实际我们只需检测nums[n-1]是否满足小于等于nums[0]即可;
    */
    var check = function (nums) {
      let n = nums.length, x = 0;
      for (let i = 1; i < n; ++i) {
        if (nums[i] < nums[i - 1]) {
          x = i;
          break;
        }
      }
      if (x === 0) {
        return true;
      }
      for (let i = x + 1; i < n; ++i) {
        if (nums[i] < nums[i - 1]) {
          return false;
        }
      }
      return nums[0] >= nums[n - 1];
    };
    console.log(check(nums = [3, 4, 5, 1, 2]))
  </script>
</body>

</html>